package response

import (
	"bottle/model/system"
	"github.com/satori/go.uuid"
)

type Code2SessionResponseData struct {
	SessionKey string `json:"session_key"`
	Openid     string `json:"openid"`
	AOpenId    string `json:"anonymous_openid"`
	UnionId    string `json:"unionid"`
	DOpenid    string `json:"dopenid"`
}

type Code2SessionResponse struct {
	ErrNo   int64                    `json:"err_no"`
	ErrTips string                   `json:"err_tips"`
	Data    Code2SessionResponseData `json:"data"`
}

type UserInfoRes struct {
	ID       int64     `gorm:"column:id;type:tinyint;primaryKey;autoIncrement:true;comment:主键id" json:"id"`   // 主键id
	UUID     uuid.UUID `json:"uuid" gorm:"comment:用户UUID"`                                                    // 用户UUID
	Username string    `gorm:"column:username;type:varchar(255);not null;comment:用户名" json:"username"`        // 用户名
	Avatar   string    `gorm:"column:avatar;type:varchar(255);not null;comment:头像" json:"avatar"`             // 头像
	Gender   int64     `gorm:"column:gender;type:tinyint;not null;comment:性别 【0：未知 1：男性 2：女性】" json:"gender"` // 性别 【0：未知 1：男性 2：女性】
	Region   string    `gorm:"column:region;type:varchar(255);not null;comment:地区" json:"region"`             // 地区
}

type SysUserResponse struct {
	User system.User `json:"user"`
}

type LoginResponse struct {
	User      system.User `json:"user"`
	Token     string      `json:"token"`
	ExpiresAt int64       `json:"expiresAt"`
}

type PickUpBottleResponse struct {
	PaperId  int64     `json:"paperId"`
	Content  string    `json:"content"`
	UserId   int64     `json:"userId"`
	Username string    `json:"username"`
	Avatar   string    `json:"avatar"`
	Gender   int64     `json:"gender"`
	UUID     uuid.UUID `json:"uuid"`
}

type GetPickAndThrowNumResponse struct {
	PickNum int `json:"pick_num"`
	ThrowNum int `json:"throw_num"`
}
